home *** CD-ROM | disk | FTP | other *** search
/ Visual Cafe 3 / Visual Cafe 3.ISO / Vcafe / Source.bin / VerticalSpinButtonPanel.java < prev    next >
Text File  |  1998-08-21  |  3KB  |  102 lines

  1. package symantec.itools.awt.util.spinner;
  2.  
  3. import java.awt.Dimension;
  4.  
  5. //    06/03/97    LAB Changed the package to symantec.itools.awt.util.spinner.
  6. //    08/27/97    LAB    Now uses the preferred sizes of the direction buttons it contains when reshaping
  7. //                    or when asked it's preferred size.  Updated version to 1.1.
  8. //  08/28/97    LAB    Updated version to 1.1. Updated reshape.  Implemented getPreferredSize and
  9. //                    getMinimumSize.
  10.  
  11. /**
  12.  * This component groups two spin buttons vertically. It is used for
  13.  * spinners with the ORIENTATION_VERTICAL attribute set.
  14.  *
  15.  * @see Spinner
  16.  * @see symantec.itools.awt.Orientation
  17.  * @see symantec.itools.awt.Orientation#ORIENTATION_VERTICAL
  18.  *
  19.  * @version 1.1, August 27, 1997
  20.  * @author    Symantec
  21.  *
  22.  */
  23. public class VerticalSpinButtonPanel extends SpinButtonPanel
  24. {
  25.     /**
  26.      * Constructs the default VerticalSpinButtonPanel.
  27.      */
  28.     public VerticalSpinButtonPanel()
  29.     {
  30.     }
  31.     
  32.     /**
  33.      * Moves and/or resizes this component.
  34.      * This is a standard Java AWT method which gets called to move and/or
  35.      * resize this component. Components that are in containers with layout
  36.      * managers should not call this method, but rely on the layout manager
  37.      * instead.
  38.      *
  39.      * This method is overridden to reshape the two direction buttons.
  40.      *
  41.      * @param x horizontal position in the parent's coordinate space
  42.      * @param y vertical position in the parent's coordinate space
  43.      * @param width the new width
  44.      * @param height the new height
  45.      */
  46.     public void reshape(int x, int y, int width, int height)
  47.     {
  48.         int halfHeight = height / 2;
  49.         int calcWidth = (int)(halfHeight * widthHeightRatio);
  50.  
  51.         incButton.setBounds(0, 0, calcWidth, halfHeight);
  52.         decButton.setBounds(0, halfHeight, calcWidth, halfHeight);
  53.  
  54.         super.reshape(x, y, width, height);
  55.     }
  56.  
  57.     /**
  58.      * Returns the recommended dimensions to properly display this component.
  59.      * This is a standard Java AWT method which gets called to determine
  60.      * the recommended size of this component.
  61.      */
  62.     public Dimension getPreferredSize()
  63.     {
  64.         int height = getSize().height;
  65.         
  66.         return new Dimension((int)((height / 2) * widthHeightRatio), height);
  67.     }
  68.  
  69.     /**
  70.      * Returns the minimum dimensions to properly display this component.
  71.      * This is a standard Java AWT method which gets called to determine
  72.      * the minimum size of this component.
  73.      * It simply returns the results of a call to preferedSize().
  74.      */
  75.     public Dimension getMinimumSize()
  76.     {
  77.         return getPreferredSize();
  78.     }
  79.  
  80.     /**
  81.      * @deprecated
  82.      * @see #getPreferredSize().
  83.      */
  84.     public Dimension preferredSize()
  85.     {
  86.         return getPreferredSize();
  87.     }
  88.  
  89.     /**
  90.      * @deprecated
  91.      * @see #getMinimumSize().
  92.      */
  93.     public Dimension minimumSize()
  94.     {
  95.         return getMinimumSize();
  96.     }
  97.     
  98.     /**
  99.      * The ratio of width to height of the spinner buttons.  i.e. width is <ratio> * height.
  100.      */
  101.     protected double widthHeightRatio = 1.25;
  102. }